package com.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class CustomerExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    private Integer limit;

    private Integer offset;

    public CustomerExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public void setLimit(Integer limit) {
        this.limit = limit;
    }

    public Integer getLimit() {
        return limit;
    }

    public void setOffset(Integer offset) {
        this.offset = offset;
    }

    public Integer getOffset() {
        return offset;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andCidIsNull() {
            addCriterion("CID is null");
            return (Criteria) this;
        }

        public Criteria andCidIsNotNull() {
            addCriterion("CID is not null");
            return (Criteria) this;
        }

        public Criteria andCidEqualTo(String value) {
            addCriterion("CID =", value, "cid");
            return (Criteria) this;
        }

        public Criteria andCidNotEqualTo(String value) {
            addCriterion("CID <>", value, "cid");
            return (Criteria) this;
        }

        public Criteria andCidGreaterThan(String value) {
            addCriterion("CID >", value, "cid");
            return (Criteria) this;
        }

        public Criteria andCidGreaterThanOrEqualTo(String value) {
            addCriterion("CID >=", value, "cid");
            return (Criteria) this;
        }

        public Criteria andCidLessThan(String value) {
            addCriterion("CID <", value, "cid");
            return (Criteria) this;
        }

        public Criteria andCidLessThanOrEqualTo(String value) {
            addCriterion("CID <=", value, "cid");
            return (Criteria) this;
        }

        public Criteria andCidLike(String value) {
            addCriterion("CID like", value, "cid");
            return (Criteria) this;
        }

        public Criteria andCidNotLike(String value) {
            addCriterion("CID not like", value, "cid");
            return (Criteria) this;
        }

        public Criteria andCidIn(List<String> values) {
            addCriterion("CID in", values, "cid");
            return (Criteria) this;
        }

        public Criteria andCidNotIn(List<String> values) {
            addCriterion("CID not in", values, "cid");
            return (Criteria) this;
        }

        public Criteria andCidBetween(String value1, String value2) {
            addCriterion("CID between", value1, value2, "cid");
            return (Criteria) this;
        }

        public Criteria andCidNotBetween(String value1, String value2) {
            addCriterion("CID not between", value1, value2, "cid");
            return (Criteria) this;
        }

        public Criteria andCnameIsNull() {
            addCriterion("CNAME is null");
            return (Criteria) this;
        }

        public Criteria andCnameIsNotNull() {
            addCriterion("CNAME is not null");
            return (Criteria) this;
        }

        public Criteria andCnameEqualTo(String value) {
            addCriterion("CNAME =", value, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameNotEqualTo(String value) {
            addCriterion("CNAME <>", value, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameGreaterThan(String value) {
            addCriterion("CNAME >", value, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameGreaterThanOrEqualTo(String value) {
            addCriterion("CNAME >=", value, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameLessThan(String value) {
            addCriterion("CNAME <", value, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameLessThanOrEqualTo(String value) {
            addCriterion("CNAME <=", value, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameLike(String value) {
            addCriterion("CNAME like", value, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameNotLike(String value) {
            addCriterion("CNAME not like", value, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameIn(List<String> values) {
            addCriterion("CNAME in", values, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameNotIn(List<String> values) {
            addCriterion("CNAME not in", values, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameBetween(String value1, String value2) {
            addCriterion("CNAME between", value1, value2, "cname");
            return (Criteria) this;
        }

        public Criteria andCnameNotBetween(String value1, String value2) {
            addCriterion("CNAME not between", value1, value2, "cname");
            return (Criteria) this;
        }

        public Criteria andCsexIsNull() {
            addCriterion("CSEX is null");
            return (Criteria) this;
        }

        public Criteria andCsexIsNotNull() {
            addCriterion("CSEX is not null");
            return (Criteria) this;
        }

        public Criteria andCsexEqualTo(String value) {
            addCriterion("CSEX =", value, "csex");
            return (Criteria) this;
        }

        public Criteria andCsexNotEqualTo(String value) {
            addCriterion("CSEX <>", value, "csex");
            return (Criteria) this;
        }

        public Criteria andCsexGreaterThan(String value) {
            addCriterion("CSEX >", value, "csex");
            return (Criteria) this;
        }

        public Criteria andCsexGreaterThanOrEqualTo(String value) {
            addCriterion("CSEX >=", value, "csex");
            return (Criteria) this;
        }

        public Criteria andCsexLessThan(String value) {
            addCriterion("CSEX <", value, "csex");
            return (Criteria) this;
        }

        public Criteria andCsexLessThanOrEqualTo(String value) {
            addCriterion("CSEX <=", value, "csex");
            return (Criteria) this;
        }

        public Criteria andCsexLike(String value) {
            addCriterion("CSEX like", value, "csex");
            return (Criteria) this;
        }

        public Criteria andCsexNotLike(String value) {
            addCriterion("CSEX not like", value, "csex");
            return (Criteria) this;
        }

        public Criteria andCsexIn(List<String> values) {
            addCriterion("CSEX in", values, "csex");
            return (Criteria) this;
        }

        public Criteria andCsexNotIn(List<String> values) {
            addCriterion("CSEX not in", values, "csex");
            return (Criteria) this;
        }

        public Criteria andCsexBetween(String value1, String value2) {
            addCriterion("CSEX between", value1, value2, "csex");
            return (Criteria) this;
        }

        public Criteria andCsexNotBetween(String value1, String value2) {
            addCriterion("CSEX not between", value1, value2, "csex");
            return (Criteria) this;
        }

        public Criteria andCbirthdayIsNull() {
            addCriterion("CBIRTHDAY is null");
            return (Criteria) this;
        }

        public Criteria andCbirthdayIsNotNull() {
            addCriterion("CBIRTHDAY is not null");
            return (Criteria) this;
        }

        public Criteria andCbirthdayEqualTo(Date value) {
            addCriterion("CBIRTHDAY =", value, "cbirthday");
            return (Criteria) this;
        }

        public Criteria andCbirthdayNotEqualTo(Date value) {
            addCriterion("CBIRTHDAY <>", value, "cbirthday");
            return (Criteria) this;
        }

        public Criteria andCbirthdayGreaterThan(Date value) {
            addCriterion("CBIRTHDAY >", value, "cbirthday");
            return (Criteria) this;
        }

        public Criteria andCbirthdayGreaterThanOrEqualTo(Date value) {
            addCriterion("CBIRTHDAY >=", value, "cbirthday");
            return (Criteria) this;
        }

        public Criteria andCbirthdayLessThan(Date value) {
            addCriterion("CBIRTHDAY <", value, "cbirthday");
            return (Criteria) this;
        }

        public Criteria andCbirthdayLessThanOrEqualTo(Date value) {
            addCriterion("CBIRTHDAY <=", value, "cbirthday");
            return (Criteria) this;
        }

        public Criteria andCbirthdayIn(List<Date> values) {
            addCriterion("CBIRTHDAY in", values, "cbirthday");
            return (Criteria) this;
        }

        public Criteria andCbirthdayNotIn(List<Date> values) {
            addCriterion("CBIRTHDAY not in", values, "cbirthday");
            return (Criteria) this;
        }

        public Criteria andCbirthdayBetween(Date value1, Date value2) {
            addCriterion("CBIRTHDAY between", value1, value2, "cbirthday");
            return (Criteria) this;
        }

        public Criteria andCbirthdayNotBetween(Date value1, Date value2) {
            addCriterion("CBIRTHDAY not between", value1, value2, "cbirthday");
            return (Criteria) this;
        }

        public Criteria andClevelIsNull() {
            addCriterion("CLEVEL is null");
            return (Criteria) this;
        }

        public Criteria andClevelIsNotNull() {
            addCriterion("CLEVEL is not null");
            return (Criteria) this;
        }

        public Criteria andClevelEqualTo(Integer value) {
            addCriterion("CLEVEL =", value, "clevel");
            return (Criteria) this;
        }

        public Criteria andClevelNotEqualTo(Integer value) {
            addCriterion("CLEVEL <>", value, "clevel");
            return (Criteria) this;
        }

        public Criteria andClevelGreaterThan(Integer value) {
            addCriterion("CLEVEL >", value, "clevel");
            return (Criteria) this;
        }

        public Criteria andClevelGreaterThanOrEqualTo(Integer value) {
            addCriterion("CLEVEL >=", value, "clevel");
            return (Criteria) this;
        }

        public Criteria andClevelLessThan(Integer value) {
            addCriterion("CLEVEL <", value, "clevel");
            return (Criteria) this;
        }

        public Criteria andClevelLessThanOrEqualTo(Integer value) {
            addCriterion("CLEVEL <=", value, "clevel");
            return (Criteria) this;
        }

        public Criteria andClevelIn(List<Integer> values) {
            addCriterion("CLEVEL in", values, "clevel");
            return (Criteria) this;
        }

        public Criteria andClevelNotIn(List<Integer> values) {
            addCriterion("CLEVEL not in", values, "clevel");
            return (Criteria) this;
        }

        public Criteria andClevelBetween(Integer value1, Integer value2) {
            addCriterion("CLEVEL between", value1, value2, "clevel");
            return (Criteria) this;
        }

        public Criteria andClevelNotBetween(Integer value1, Integer value2) {
            addCriterion("CLEVEL not between", value1, value2, "clevel");
            return (Criteria) this;
        }

        public Criteria andCpwdIsNull() {
            addCriterion("CPWD is null");
            return (Criteria) this;
        }

        public Criteria andCpwdIsNotNull() {
            addCriterion("CPWD is not null");
            return (Criteria) this;
        }

        public Criteria andCpwdEqualTo(String value) {
            addCriterion("CPWD =", value, "cpwd");
            return (Criteria) this;
        }

        public Criteria andCpwdNotEqualTo(String value) {
            addCriterion("CPWD <>", value, "cpwd");
            return (Criteria) this;
        }

        public Criteria andCpwdGreaterThan(String value) {
            addCriterion("CPWD >", value, "cpwd");
            return (Criteria) this;
        }

        public Criteria andCpwdGreaterThanOrEqualTo(String value) {
            addCriterion("CPWD >=", value, "cpwd");
            return (Criteria) this;
        }

        public Criteria andCpwdLessThan(String value) {
            addCriterion("CPWD <", value, "cpwd");
            return (Criteria) this;
        }

        public Criteria andCpwdLessThanOrEqualTo(String value) {
            addCriterion("CPWD <=", value, "cpwd");
            return (Criteria) this;
        }

        public Criteria andCpwdLike(String value) {
            addCriterion("CPWD like", value, "cpwd");
            return (Criteria) this;
        }

        public Criteria andCpwdNotLike(String value) {
            addCriterion("CPWD not like", value, "cpwd");
            return (Criteria) this;
        }

        public Criteria andCpwdIn(List<String> values) {
            addCriterion("CPWD in", values, "cpwd");
            return (Criteria) this;
        }

        public Criteria andCpwdNotIn(List<String> values) {
            addCriterion("CPWD not in", values, "cpwd");
            return (Criteria) this;
        }

        public Criteria andCpwdBetween(String value1, String value2) {
            addCriterion("CPWD between", value1, value2, "cpwd");
            return (Criteria) this;
        }

        public Criteria andCpwdNotBetween(String value1, String value2) {
            addCriterion("CPWD not between", value1, value2, "cpwd");
            return (Criteria) this;
        }

        public Criteria andCcostIsNull() {
            addCriterion("CCOST is null");
            return (Criteria) this;
        }

        public Criteria andCcostIsNotNull() {
            addCriterion("CCOST is not null");
            return (Criteria) this;
        }

        public Criteria andCcostEqualTo(Float value) {
            addCriterion("CCOST =", value, "ccost");
            return (Criteria) this;
        }

        public Criteria andCcostNotEqualTo(Float value) {
            addCriterion("CCOST <>", value, "ccost");
            return (Criteria) this;
        }

        public Criteria andCcostGreaterThan(Float value) {
            addCriterion("CCOST >", value, "ccost");
            return (Criteria) this;
        }

        public Criteria andCcostGreaterThanOrEqualTo(Float value) {
            addCriterion("CCOST >=", value, "ccost");
            return (Criteria) this;
        }

        public Criteria andCcostLessThan(Float value) {
            addCriterion("CCOST <", value, "ccost");
            return (Criteria) this;
        }

        public Criteria andCcostLessThanOrEqualTo(Float value) {
            addCriterion("CCOST <=", value, "ccost");
            return (Criteria) this;
        }

        public Criteria andCcostIn(List<Float> values) {
            addCriterion("CCOST in", values, "ccost");
            return (Criteria) this;
        }

        public Criteria andCcostNotIn(List<Float> values) {
            addCriterion("CCOST not in", values, "ccost");
            return (Criteria) this;
        }

        public Criteria andCcostBetween(Float value1, Float value2) {
            addCriterion("CCOST between", value1, value2, "ccost");
            return (Criteria) this;
        }

        public Criteria andCcostNotBetween(Float value1, Float value2) {
            addCriterion("CCOST not between", value1, value2, "ccost");
            return (Criteria) this;
        }

        public Criteria andCheadIsNull() {
            addCriterion("CHEAD is null");
            return (Criteria) this;
        }

        public Criteria andCheadIsNotNull() {
            addCriterion("CHEAD is not null");
            return (Criteria) this;
        }

        public Criteria andCheadEqualTo(String value) {
            addCriterion("CHEAD =", value, "chead");
            return (Criteria) this;
        }

        public Criteria andCheadNotEqualTo(String value) {
            addCriterion("CHEAD <>", value, "chead");
            return (Criteria) this;
        }

        public Criteria andCheadGreaterThan(String value) {
            addCriterion("CHEAD >", value, "chead");
            return (Criteria) this;
        }

        public Criteria andCheadGreaterThanOrEqualTo(String value) {
            addCriterion("CHEAD >=", value, "chead");
            return (Criteria) this;
        }

        public Criteria andCheadLessThan(String value) {
            addCriterion("CHEAD <", value, "chead");
            return (Criteria) this;
        }

        public Criteria andCheadLessThanOrEqualTo(String value) {
            addCriterion("CHEAD <=", value, "chead");
            return (Criteria) this;
        }

        public Criteria andCheadLike(String value) {
            addCriterion("CHEAD like", value, "chead");
            return (Criteria) this;
        }

        public Criteria andCheadNotLike(String value) {
            addCriterion("CHEAD not like", value, "chead");
            return (Criteria) this;
        }

        public Criteria andCheadIn(List<String> values) {
            addCriterion("CHEAD in", values, "chead");
            return (Criteria) this;
        }

        public Criteria andCheadNotIn(List<String> values) {
            addCriterion("CHEAD not in", values, "chead");
            return (Criteria) this;
        }

        public Criteria andCheadBetween(String value1, String value2) {
            addCriterion("CHEAD between", value1, value2, "chead");
            return (Criteria) this;
        }

        public Criteria andCheadNotBetween(String value1, String value2) {
            addCriterion("CHEAD not between", value1, value2, "chead");
            return (Criteria) this;
        }

        public Criteria andChighIsNull() {
            addCriterion("chigh is null");
            return (Criteria) this;
        }

        public Criteria andChighIsNotNull() {
            addCriterion("chigh is not null");
            return (Criteria) this;
        }

        public Criteria andChighEqualTo(Integer value) {
            addCriterion("chigh =", value, "chigh");
            return (Criteria) this;
        }

        public Criteria andChighNotEqualTo(Integer value) {
            addCriterion("chigh <>", value, "chigh");
            return (Criteria) this;
        }

        public Criteria andChighGreaterThan(Integer value) {
            addCriterion("chigh >", value, "chigh");
            return (Criteria) this;
        }

        public Criteria andChighGreaterThanOrEqualTo(Integer value) {
            addCriterion("chigh >=", value, "chigh");
            return (Criteria) this;
        }

        public Criteria andChighLessThan(Integer value) {
            addCriterion("chigh <", value, "chigh");
            return (Criteria) this;
        }

        public Criteria andChighLessThanOrEqualTo(Integer value) {
            addCriterion("chigh <=", value, "chigh");
            return (Criteria) this;
        }

        public Criteria andChighIn(List<Integer> values) {
            addCriterion("chigh in", values, "chigh");
            return (Criteria) this;
        }

        public Criteria andChighNotIn(List<Integer> values) {
            addCriterion("chigh not in", values, "chigh");
            return (Criteria) this;
        }

        public Criteria andChighBetween(Integer value1, Integer value2) {
            addCriterion("chigh between", value1, value2, "chigh");
            return (Criteria) this;
        }

        public Criteria andChighNotBetween(Integer value1, Integer value2) {
            addCriterion("chigh not between", value1, value2, "chigh");
            return (Criteria) this;
        }

        public Criteria andCweightIsNull() {
            addCriterion("cweight is null");
            return (Criteria) this;
        }

        public Criteria andCweightIsNotNull() {
            addCriterion("cweight is not null");
            return (Criteria) this;
        }

        public Criteria andCweightEqualTo(Integer value) {
            addCriterion("cweight =", value, "cweight");
            return (Criteria) this;
        }

        public Criteria andCweightNotEqualTo(Integer value) {
            addCriterion("cweight <>", value, "cweight");
            return (Criteria) this;
        }

        public Criteria andCweightGreaterThan(Integer value) {
            addCriterion("cweight >", value, "cweight");
            return (Criteria) this;
        }

        public Criteria andCweightGreaterThanOrEqualTo(Integer value) {
            addCriterion("cweight >=", value, "cweight");
            return (Criteria) this;
        }

        public Criteria andCweightLessThan(Integer value) {
            addCriterion("cweight <", value, "cweight");
            return (Criteria) this;
        }

        public Criteria andCweightLessThanOrEqualTo(Integer value) {
            addCriterion("cweight <=", value, "cweight");
            return (Criteria) this;
        }

        public Criteria andCweightIn(List<Integer> values) {
            addCriterion("cweight in", values, "cweight");
            return (Criteria) this;
        }

        public Criteria andCweightNotIn(List<Integer> values) {
            addCriterion("cweight not in", values, "cweight");
            return (Criteria) this;
        }

        public Criteria andCweightBetween(Integer value1, Integer value2) {
            addCriterion("cweight between", value1, value2, "cweight");
            return (Criteria) this;
        }

        public Criteria andCweightNotBetween(Integer value1, Integer value2) {
            addCriterion("cweight not between", value1, value2, "cweight");
            return (Criteria) this;
        }

        public Criteria andBodyfatIsNull() {
            addCriterion("bodyfat is null");
            return (Criteria) this;
        }

        public Criteria andBodyfatIsNotNull() {
            addCriterion("bodyfat is not null");
            return (Criteria) this;
        }

        public Criteria andBodyfatEqualTo(Integer value) {
            addCriterion("bodyfat =", value, "bodyfat");
            return (Criteria) this;
        }

        public Criteria andBodyfatNotEqualTo(Integer value) {
            addCriterion("bodyfat <>", value, "bodyfat");
            return (Criteria) this;
        }

        public Criteria andBodyfatGreaterThan(Integer value) {
            addCriterion("bodyfat >", value, "bodyfat");
            return (Criteria) this;
        }

        public Criteria andBodyfatGreaterThanOrEqualTo(Integer value) {
            addCriterion("bodyfat >=", value, "bodyfat");
            return (Criteria) this;
        }

        public Criteria andBodyfatLessThan(Integer value) {
            addCriterion("bodyfat <", value, "bodyfat");
            return (Criteria) this;
        }

        public Criteria andBodyfatLessThanOrEqualTo(Integer value) {
            addCriterion("bodyfat <=", value, "bodyfat");
            return (Criteria) this;
        }

        public Criteria andBodyfatIn(List<Integer> values) {
            addCriterion("bodyfat in", values, "bodyfat");
            return (Criteria) this;
        }

        public Criteria andBodyfatNotIn(List<Integer> values) {
            addCriterion("bodyfat not in", values, "bodyfat");
            return (Criteria) this;
        }

        public Criteria andBodyfatBetween(Integer value1, Integer value2) {
            addCriterion("bodyfat between", value1, value2, "bodyfat");
            return (Criteria) this;
        }

        public Criteria andBodyfatNotBetween(Integer value1, Integer value2) {
            addCriterion("bodyfat not between", value1, value2, "bodyfat");
            return (Criteria) this;
        }

        public Criteria andCdescIsNull() {
            addCriterion("cdesc is null");
            return (Criteria) this;
        }

        public Criteria andCdescIsNotNull() {
            addCriterion("cdesc is not null");
            return (Criteria) this;
        }

        public Criteria andCdescEqualTo(String value) {
            addCriterion("cdesc =", value, "cdesc");
            return (Criteria) this;
        }

        public Criteria andCdescNotEqualTo(String value) {
            addCriterion("cdesc <>", value, "cdesc");
            return (Criteria) this;
        }

        public Criteria andCdescGreaterThan(String value) {
            addCriterion("cdesc >", value, "cdesc");
            return (Criteria) this;
        }

        public Criteria andCdescGreaterThanOrEqualTo(String value) {
            addCriterion("cdesc >=", value, "cdesc");
            return (Criteria) this;
        }

        public Criteria andCdescLessThan(String value) {
            addCriterion("cdesc <", value, "cdesc");
            return (Criteria) this;
        }

        public Criteria andCdescLessThanOrEqualTo(String value) {
            addCriterion("cdesc <=", value, "cdesc");
            return (Criteria) this;
        }

        public Criteria andCdescLike(String value) {
            addCriterion("cdesc like", value, "cdesc");
            return (Criteria) this;
        }

        public Criteria andCdescNotLike(String value) {
            addCriterion("cdesc not like", value, "cdesc");
            return (Criteria) this;
        }

        public Criteria andCdescIn(List<String> values) {
            addCriterion("cdesc in", values, "cdesc");
            return (Criteria) this;
        }

        public Criteria andCdescNotIn(List<String> values) {
            addCriterion("cdesc not in", values, "cdesc");
            return (Criteria) this;
        }

        public Criteria andCdescBetween(String value1, String value2) {
            addCriterion("cdesc between", value1, value2, "cdesc");
            return (Criteria) this;
        }

        public Criteria andCdescNotBetween(String value1, String value2) {
            addCriterion("cdesc not between", value1, value2, "cdesc");
            return (Criteria) this;
        }
    }

    /**
     */
    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}